/**
 * v-hasPermi 操作权限处理
 * Copyright (c) 2019 ruoyi
 */

import useUserStore from "@/store/modules/user";

export default {
    // 钩子函数
    // v3中钩子函数 = v2的生命周期(没有beforeCreat的)
    mounted(el, binding, vnode) {
        // value 当前按钮的指令标识符
        const { value } = binding;
        // console.log("value", value);
        const all_permission = "*:*:*";
        // 后端返回的当前角色的全部按钮标识符数组
        const permissions = useUserStore().permissions;

        if (value && value instanceof Array && value.length > 0) {
            const currentButtonPermissionFlag = value;

            const hasPermissions = permissions.some((permission) => {
                // 在返回的所有标识符数组中判断是否有当前的标识符.有的话返回true
                // 没有返回false
                return (
                    all_permission === permission ||
                    currentButtonPermissionFlag.includes(permission)
                );
            });
            // hasPermissions 是true 是代表在(按钮应该保存)  false 不在.按钮删除
            if (!hasPermissions) {
                // console.log("el", el);
                // console.log("el.parentNode", el.parentNode); //null
                // 删除这个按钮
                el.parentNode && el.parentNode.removeChild(el);
            }
        } else {
            throw new Error(`请设置操作权限标签值`);
        }
    }
};
